home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the 3D Game Programming Gurus / gurus.iso / DirectX / dx9sdkcp.exe / SDK (C++) / Include / mpeg2data.h < prev    next >
Encoding:
C/C++ Source or Header  |  2002-12-04  |  29.9 KB  |  1,073 lines

  1.  
  2. #pragma warning( disable: 4049 )  /* more than 64k source lines */
  3.  
  4. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  5.  
  6.  
  7.  /* File created by MIDL compiler version 6.00.0357 */
  8. /* Compiler settings for mpeg2data.idl:
  9.     Oicf, W1, Zp8, env=Win32 (32b run)
  10.     protocol : dce , ms_ext, c_ext, robust
  11.     error checks: allocation ref bounds_check enum stub_data 
  12.     VC __declspec() decoration level: 
  13.          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  14.          DECLSPEC_UUID(), MIDL_INTERFACE()
  15. */
  16. //@@MIDL_FILE_HEADING(  )
  17.  
  18.  
  19. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  20. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  21. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  22. #endif
  23.  
  24. #include "rpc.h"
  25. #include "rpcndr.h"
  26.  
  27. #ifndef __RPCNDR_H_VERSION__
  28. #error this stub requires an updated version of <rpcndr.h>
  29. #endif // __RPCNDR_H_VERSION__
  30.  
  31.  
  32. #ifndef __mpeg2data_h__
  33. #define __mpeg2data_h__
  34.  
  35. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  36. #pragma once
  37. #endif
  38.  
  39. /* Forward Declarations */ 
  40.  
  41. #ifndef __IMpeg2Data_FWD_DEFINED__
  42. #define __IMpeg2Data_FWD_DEFINED__
  43. typedef interface IMpeg2Data IMpeg2Data;
  44. #endif     /* __IMpeg2Data_FWD_DEFINED__ */
  45.  
  46.  
  47. #ifndef __ISectionList_FWD_DEFINED__
  48. #define __ISectionList_FWD_DEFINED__
  49. typedef interface ISectionList ISectionList;
  50. #endif     /* __ISectionList_FWD_DEFINED__ */
  51.  
  52.  
  53. #ifndef __IMpeg2Stream_FWD_DEFINED__
  54. #define __IMpeg2Stream_FWD_DEFINED__
  55. typedef interface IMpeg2Stream IMpeg2Stream;
  56. #endif     /* __IMpeg2Stream_FWD_DEFINED__ */
  57.  
  58.  
  59. #ifndef __SectionList_FWD_DEFINED__
  60. #define __SectionList_FWD_DEFINED__
  61.  
  62. #ifdef __cplusplus
  63. typedef class SectionList SectionList;
  64. #else
  65. typedef struct SectionList SectionList;
  66. #endif /* __cplusplus */
  67.  
  68. #endif     /* __SectionList_FWD_DEFINED__ */
  69.  
  70.  
  71. #ifndef __Mpeg2Stream_FWD_DEFINED__
  72. #define __Mpeg2Stream_FWD_DEFINED__
  73.  
  74. #ifdef __cplusplus
  75. typedef class Mpeg2Stream Mpeg2Stream;
  76. #else
  77. typedef struct Mpeg2Stream Mpeg2Stream;
  78. #endif /* __cplusplus */
  79.  
  80. #endif     /* __Mpeg2Stream_FWD_DEFINED__ */
  81.  
  82.  
  83. #ifndef __Mpeg2Data_FWD_DEFINED__
  84. #define __Mpeg2Data_FWD_DEFINED__
  85.  
  86. #ifdef __cplusplus
  87. typedef class Mpeg2Data Mpeg2Data;
  88. #else
  89. typedef struct Mpeg2Data Mpeg2Data;
  90. #endif /* __cplusplus */
  91.  
  92. #endif     /* __Mpeg2Data_FWD_DEFINED__ */
  93.  
  94.  
  95. /* header files for imported files */
  96. #include "oaidl.h"
  97. #include "ocidl.h"
  98. #include "bdaiface.h"
  99.  
  100. #ifdef __cplusplus
  101. extern "C"{
  102. #endif 
  103.  
  104. void * __RPC_USER MIDL_user_allocate(size_t);
  105. void __RPC_USER MIDL_user_free( void * ); 
  106.  
  107. /* interface __MIDL_itf_mpeg2data_0000 */
  108. /* [local] */ 
  109.  
  110.  
  111. #pragma pack(push)
  112.  
  113. #pragma pack(1)
  114.  
  115.  
  116. #define MPEG_PAT_PID                0x0000
  117. #define MPEG_PAT_TID                0x00
  118. #define MPEG_CAT_PID                0x0001
  119. #define MPEG_CAT_TID                0x01
  120. #define MPEG_PMT_TID                0x02
  121. #define MPEG_TSDT_PID               0x0002
  122. #define MPEG_TSDT_TID               0x03
  123. #define ATSC_MGT_PID                0x1FFB
  124. #define ATSC_MGT_TID                0xC7
  125. #define ATSC_VCT_PID                0x1FFB
  126. #define ATSC_VCT_TERR_TID           0xC8
  127. #define ATSC_VCT_CABL_TID           0xC9
  128. #define ATSC_RRT_PID                0x1FFB
  129. #define ATSC_RRT_TID                0xCA
  130. #define ATSC_EIT_TID                0xCB
  131. #define ATSC_ETT_TID                0xCC
  132. #define ATSC_STT_PID                0x1FFB
  133. #define ATSC_STT_TID                0xCD
  134. #define ATSC_PIT_TID                0xD0
  135. #define DVB_NIT_PID                 0x0010
  136. #define DVB_NIT_ACTUAL_TID          0x40
  137. #define DVB_NIT_OTHER_TID           0x41
  138. #define DVB_SDT_PID                 0x0011
  139. #define DVB_SDT_ACTUAL_TID          0x42
  140. #define DVB_SDT_OTHER_TID           0x46
  141. #define DVB_BAT_PID                 0x0011
  142. #define DVB_BAT_TID                 0x4A
  143. #define DVB_EIT_PID                 0x0012
  144. #define DVB_EIT_ACTUAL_TID          0x4E
  145. #define DVB_EIT_OTHER_TID           0x4F
  146. #define DVB_RST_PID                 0x0013
  147. #define DVB_RST_TID                 0x71
  148. #define DVB_TDT_PID                 0x0014
  149. #define DVB_TDT_TID                 0x70
  150. #define DVB_ST_PID_16               0x0010
  151. #define DVB_ST_PID_17               0x0011
  152. #define DVB_ST_PID_18               0x0012
  153. #define DVB_ST_PID_19               0x0013
  154. #define DVB_ST_PID_20               0x0014
  155. #define DVB_ST_TID                  0x72
  156. #define DVB_TOT_PID                 0x0014
  157. #define DVB_TOT_TID                 0x73
  158. #define DVB_DIT_PID                 0x001E
  159. #define DVB_DIT_TID                 0x7E
  160. #define DVB_SIT_PID                 0x001F
  161. #define DVB_SIT_TID                 0x7F
  162. #define ISDB_DCT_PID                0x0017
  163. #define ISDB_DCT_TID                0xC0
  164. #define ISDB_LIT_PID                0x0020
  165. #define ISDB_LIT_TID                0xD0
  166. #define ISDB_ERT_PID                0x0021
  167. #define ISDB_ERT_TID                0xD1
  168. #define ISDB_ITT_TID                0xD2
  169. #define ISDB_DLT_TID                0xC1
  170. #define ISDB_PCAT_PID               0x0022
  171. #define ISDB_PCAT_TID               0xC2
  172. #define ISDB_SDTT_PID               0x0023
  173. #define ISDB_SDTT_TID               0xC3
  174. class DECLSPEC_UUID("DBAF6C1B-B6A4-4898-AE65-204F0D9509A1") Mpeg2DataLib;
  175.  
  176.  
  177. extern RPC_IF_HANDLE __MIDL_itf_mpeg2data_0000_v0_0_c_ifspec;
  178. extern RPC_IF_HANDLE __MIDL_itf_mpeg2data_0000_v0_0_s_ifspec;
  179.  
  180.  
  181. #ifndef __Mpeg2DataLib_LIBRARY_DEFINED__
  182. #define __Mpeg2DataLib_LIBRARY_DEFINED__
  183.  
  184. /* library Mpeg2DataLib */
  185. /* [version][uuid] */ 
  186.  
  187. #pragma once
  188.  
  189. #pragma pack(push)
  190.  
  191. #pragma pack(1)
  192. typedef /* [public] */ struct __MIDL___MIDL_itf_mpeg2data_0000_0001
  193.     {
  194.     WORD Bits;
  195.     }     PID_BITS_MIDL;
  196.  
  197. typedef /* [public][public][public][public][public][public][public][public][public][public][public][public][public] */ struct __MIDL___MIDL_itf_mpeg2data_0000_0002
  198.     {
  199.     WORD Bits;
  200.     }     MPEG_HEADER_BITS_MIDL;
  201.  
  202. typedef /* [public][public][public][public][public] */ struct __MIDL___MIDL_itf_mpeg2data_0000_0003
  203.     {
  204.     BYTE Bits;
  205.     }     MPEG_HEADER_VERSION_BITS_MIDL;
  206.  
  207.  
  208. #pragma pack(pop)
  209. typedef WORD PID;
  210.  
  211. typedef BYTE TID;
  212.  
  213. typedef UINT ClientKey;
  214.  
  215. typedef /* [public] */ 
  216. enum __MIDL___MIDL_itf_mpeg2data_0000_0004
  217.     {    MPEG_SECTION_IS_NEXT    = 0,
  218.     MPEG_SECTION_IS_CURRENT    = 1
  219.     }     MPEG_CURRENT_NEXT_BIT;
  220.  
  221. typedef /* [public] */ struct __MIDL___MIDL_itf_mpeg2data_0000_0005
  222.     {
  223.     WORD wTidExt;
  224.     WORD wCount;
  225.     }     TID_EXTENSION;
  226.  
  227. typedef struct __MIDL___MIDL_itf_mpeg2data_0000_0005 *PTID_EXTENSION;
  228.  
  229. typedef /* [public] */ struct __MIDL___MIDL_itf_mpeg2data_0000_0006
  230.     {
  231.     TID TableId;
  232.     union 
  233.         {
  234.         MPEG_HEADER_BITS_MIDL S;
  235.         WORD W;
  236.         }     Header;
  237.     BYTE SectionData[ 1 ];
  238.     }     SECTION;
  239.  
  240. typedef struct __MIDL___MIDL_itf_mpeg2data_0000_0006 *PSECTION;
  241.  
  242. typedef /* [public] */ struct __MIDL___MIDL_itf_mpeg2data_0000_0008
  243.     {
  244.     TID TableId;
  245.     union 
  246.         {
  247.         MPEG_HEADER_BITS_MIDL S;
  248.         WORD W;
  249.         }     Header;
  250.     WORD TableIdExtension;
  251.     union 
  252.         {
  253.         MPEG_HEADER_VERSION_BITS_MIDL S;
  254.         BYTE B;
  255.         }     Version;
  256.     BYTE SectionNumber;
  257.     BYTE LastSectionNumber;
  258.     BYTE RemainingData[ 1 ];
  259.     }     LONG_SECTION;
  260.  
  261. typedef struct __MIDL___MIDL_itf_mpeg2data_0000_0008 *PLONG_SECTION;
  262.  
  263. typedef /* [public] */ struct __MIDL___MIDL_itf_mpeg2data_0000_0011
  264.     {
  265.     TID TableId;
  266.     union 
  267.         {
  268.         MPEG_HEADER_BITS_MIDL S;
  269.         WORD W;
  270.         }     Header;
  271.     WORD TableIdExtension;
  272.     union 
  273.         {
  274.         MPEG_HEADER_VERSION_BITS_MIDL S;
  275.         BYTE B;
  276.         }     Version;
  277.     BYTE SectionNumber;
  278.     BYTE LastSectionNumber;
  279.     BYTE ProtocolDiscriminator;
  280.     BYTE DsmccType;
  281.     WORD MessageId;
  282.     DWORD TransactionId;
  283.     BYTE Reserved;
  284.     BYTE AdaptationLength;
  285.     WORD MessageLength;
  286.     BYTE RemainingData[ 1 ];
  287.     }     DSMCC_SECTION;
  288.  
  289. typedef struct __MIDL___MIDL_itf_mpeg2data_0000_0011 *PDSMCC_SECTION;
  290.  
  291. typedef /* [public] */ struct __MIDL___MIDL_itf_mpeg2data_0000_0014
  292.     {
  293.     DWORD dwLength;
  294.     PSECTION pSection;
  295.     }     MPEG_RQST_PACKET;
  296.  
  297. typedef struct __MIDL___MIDL_itf_mpeg2data_0000_0014 *PMPEG_RQST_PACKET;
  298.  
  299. typedef /* [public] */ struct __MIDL___MIDL_itf_mpeg2data_0000_0015
  300.     {
  301.     WORD wPacketCount;
  302.     PMPEG_RQST_PACKET PacketList[ 1 ];
  303.     }     MPEG_PACKET_LIST;
  304.  
  305. typedef struct __MIDL___MIDL_itf_mpeg2data_0000_0015 *PMPEG_PACKET_LIST;
  306.  
  307. typedef /* [public][public][public][public][public][public][public][public][public][public] */ struct __MIDL___MIDL_itf_mpeg2data_0000_0016
  308.     {
  309.     BOOL fSpecifyProtocol;
  310.     BYTE Protocol;
  311.     BOOL fSpecifyType;
  312.     BYTE Type;
  313.     BOOL fSpecifyMessageId;
  314.     WORD MessageId;
  315.     BOOL fSpecifyTransactionId;
  316.     BOOL fUseTrxIdMessageIdMask;
  317.     DWORD TransactionId;
  318.     BOOL fSpecifyModuleVersion;
  319.     BYTE ModuleVersion;
  320.     BOOL fSpecifyBlockNumber;
  321.     WORD BlockNumber;
  322.     BOOL fGetModuleCall;
  323.     WORD NumberOfBlocksInModule;
  324.     }     DSMCC_FILTER_OPTIONS;
  325.  
  326. typedef /* [public][public][public][public][public][public][public][public][public][public] */ struct __MIDL___MIDL_itf_mpeg2data_0000_0017
  327.     {
  328.     BOOL fSpecifyEtmId;
  329.     DWORD EtmId;
  330.     }     ATSC_FILTER_OPTIONS;
  331.  
  332. typedef /* [public][public][public] */ struct __MIDL___MIDL_itf_mpeg2data_0000_0018
  333.     {
  334.     BYTE bVersionNumber;
  335.     WORD wFilterSize;
  336.     BOOL fUseRawFilteringBits;
  337.     BYTE Filter[ 16 ];
  338.     BYTE Mask[ 16 ];
  339.     BOOL fSpecifyTableIdExtension;
  340.     WORD TableIdExtension;
  341.     BOOL fSpecifyVersion;
  342.     BYTE Version;
  343.     BOOL fSpecifySectionNumber;
  344.     BYTE SectionNumber;
  345.     BOOL fSpecifyCurrentNext;
  346.     BOOL fNext;
  347.     BOOL fSpecifyDsmccOptions;
  348.     DSMCC_FILTER_OPTIONS Dsmcc;
  349.     BOOL fSpecifyAtscOptions;
  350.     ATSC_FILTER_OPTIONS Atsc;
  351.     }     MPEG2_FILTER;
  352.  
  353. typedef struct __MIDL___MIDL_itf_mpeg2data_0000_0018 *PMPEG2_FILTER;
  354.  
  355. #define MPEG2_FILTER_VERSION_1_SIZE  124
  356. typedef /* [public] */ struct __MIDL___MIDL_itf_mpeg2data_0000_0019
  357.     {
  358.     HRESULT hr;
  359.     DWORD dwDataBufferSize;
  360.     DWORD dwSizeOfDataRead;
  361.     BYTE *pDataBuffer;
  362.     }     MPEG_STREAM_BUFFER;
  363.  
  364. typedef struct __MIDL___MIDL_itf_mpeg2data_0000_0019 *PMPEG_STREAM_BUFFER;
  365.  
  366. typedef /* [public][public][public] */ struct __MIDL___MIDL_itf_mpeg2data_0000_0020
  367.     {
  368.     BYTE Hours;
  369.     BYTE Minutes;
  370.     BYTE Seconds;
  371.     }     MPEG_TIME;
  372.  
  373. typedef MPEG_TIME MPEG_DURATION;
  374.  
  375. typedef /* [public][public] */ struct __MIDL___MIDL_itf_mpeg2data_0000_0021
  376.     {
  377.     BYTE Date;
  378.     BYTE Month;
  379.     WORD Year;
  380.     }     MPEG_DATE;
  381.  
  382. typedef /* [public] */ struct __MIDL___MIDL_itf_mpeg2data_0000_0022
  383.     {
  384.     MPEG_DATE D;
  385.     MPEG_TIME T;
  386.     }     MPEG_DATE_AND_TIME;
  387.  
  388. typedef /* [public][public][public][public][public][public][public] */ 
  389. enum __MIDL___MIDL_itf_mpeg2data_0000_0023
  390.     {    MPEG_CONTEXT_BCS_DEMUX    = 0,
  391.     MPEG_CONTEXT_WINSOCK    = MPEG_CONTEXT_BCS_DEMUX + 1
  392.     }     MPEG_CONTEXT_TYPE;
  393.  
  394. typedef /* [public][public][public][public][public][public][public] */ struct __MIDL___MIDL_itf_mpeg2data_0000_0024
  395.     {
  396.     DWORD AVMGraphId;
  397.     }     MPEG_BCS_DEMUX;
  398.  
  399. typedef /* [public][public][public][public][public][public][public] */ struct __MIDL___MIDL_itf_mpeg2data_0000_0025
  400.     {
  401.     DWORD AVMGraphId;
  402.     }     MPEG_WINSOCK;
  403.  
  404. typedef /* [public][public][public] */ struct __MIDL___MIDL_itf_mpeg2data_0000_0026
  405.     {
  406.     MPEG_CONTEXT_TYPE Type;
  407.     union 
  408.         {
  409.         MPEG_BCS_DEMUX Demux;
  410.         MPEG_WINSOCK Winsock;
  411.         }     U;
  412.     }     MPEG_CONTEXT;
  413.  
  414. typedef struct __MIDL___MIDL_itf_mpeg2data_0000_0026 *PMPEG_CONTEXT;
  415.  
  416. typedef /* [public][public][public][public][public] */ 
  417. enum __MIDL___MIDL_itf_mpeg2data_0000_0028
  418.     {    MPEG_RQST_UNKNOWN    = 0,
  419.     MPEG_RQST_GET_SECTION    = MPEG_RQST_UNKNOWN + 1,
  420.     MPEG_RQST_GET_SECTION_ASYNC    = MPEG_RQST_GET_SECTION + 1,
  421.     MPEG_RQST_GET_TABLE    = MPEG_RQST_GET_SECTION_ASYNC + 1,
  422.     MPEG_RQST_GET_TABLE_ASYNC    = MPEG_RQST_GET_TABLE + 1,
  423.     MPEG_RQST_GET_SECTIONS_STREAM    = MPEG_RQST_GET_TABLE_ASYNC + 1,
  424.     MPEG_RQST_GET_PES_STREAM    = MPEG_RQST_GET_SECTIONS_STREAM + 1,
  425.     MPEG_RQST_GET_TS_STREAM    = MPEG_RQST_GET_PES_STREAM + 1,
  426.     MPEG_RQST_START_MPE_STREAM    = MPEG_RQST_GET_TS_STREAM + 1
  427.     }     MPEG_REQUEST_TYPE;
  428.  
  429. typedef /* [public] */ struct __MIDL___MIDL_itf_mpeg2data_0000_0029
  430.     {
  431.     MPEG_REQUEST_TYPE Type;
  432.     MPEG_CONTEXT Context;
  433.     PID Pid;
  434.     TID TableId;
  435.     MPEG2_FILTER Filter;
  436.     DWORD Flags;
  437.     }     MPEG_SERVICE_REQUEST;
  438.  
  439. typedef struct __MIDL___MIDL_itf_mpeg2data_0000_0029 *PMPEG_SERVICE_REQUEST;
  440.  
  441. typedef /* [public] */ struct __MIDL___MIDL_itf_mpeg2data_0000_0030
  442.     {
  443.     DWORD IPAddress;
  444.     WORD Port;
  445.     }     MPEG_SERVICE_RESPONSE;
  446.  
  447. typedef struct __MIDL___MIDL_itf_mpeg2data_0000_0030 *PMPEG_SERVICE_RESPONSE;
  448.  
  449. typedef struct _DSMCC_ELEMENT
  450.     {
  451.     PID pid;
  452.     BYTE bComponentTag;
  453.     DWORD dwCarouselId;
  454.     DWORD dwTransactionId;
  455.     struct _DSMCC_ELEMENT *pNext;
  456.     }     DSMCC_ELEMENT;
  457.  
  458. typedef struct _DSMCC_ELEMENT *PDSMCC_ELEMENT;
  459.  
  460. typedef struct _MPE_ELEMENT
  461.     {
  462.     PID pid;
  463.     BYTE bComponentTag;
  464.     struct _MPE_ELEMENT *pNext;
  465.     }     MPE_ELEMENT;
  466.  
  467. typedef struct _MPE_ELEMENT *PMPE_ELEMENT;
  468.  
  469. typedef struct _MPEG_STREAM_FILTER
  470.     {
  471.     WORD wPidValue;
  472.     DWORD dwFilterSize;
  473.     BOOL fCrcEnabled;
  474.     BYTE rgchFilter[ 16 ];
  475.     BYTE rgchMask[ 16 ];
  476.     }     MPEG_STREAM_FILTER;
  477.  
  478.  
  479. EXTERN_C const IID LIBID_Mpeg2DataLib;
  480.  
  481. #ifndef __IMpeg2Data_INTERFACE_DEFINED__
  482. #define __IMpeg2Data_INTERFACE_DEFINED__
  483.  
  484. /* interface IMpeg2Data */
  485. /* [unique][uuid][object] */ 
  486.  
  487.  
  488. EXTERN_C const IID IID_IMpeg2Data;
  489.  
  490. #if defined(__cplusplus) && !defined(CINTERFACE)
  491.     
  492.     MIDL_INTERFACE("9B396D40-F380-4e3c-A514-1A82BF6EBFE6")
  493.     IMpeg2Data : public IUnknown
  494.     {
  495.     public:
  496.         virtual HRESULT STDMETHODCALLTYPE GetSection( 
  497.             /* [in] */ PID pid,
  498.             /* [in] */ TID tid,
  499.             /* [in] */ PMPEG2_FILTER pFilter,
  500.             /* [in] */ DWORD dwTimeout,
  501.             /* [out] */ ISectionList **ppSectionList) = 0;
  502.         
  503.         virtual HRESULT STDMETHODCALLTYPE GetTable( 
  504.             /* [in] */ PID pid,
  505.             /* [in] */ TID tid,
  506.             /* [in] */ PMPEG2_FILTER pFilter,
  507.             /* [in] */ DWORD dwTimeout,
  508.             /* [out] */ ISectionList **ppSectionList) = 0;
  509.         
  510.         virtual HRESULT STDMETHODCALLTYPE GetStreamOfSections( 
  511.             /* [in] */ PID pid,
  512.             /* [in] */ TID tid,
  513.             /* [in] */ PMPEG2_FILTER pFilter,
  514.             /* [in] */ HANDLE hDataReadyEvent,
  515.             /* [out] */ IMpeg2Stream **ppMpegStream) = 0;
  516.         
  517.     };
  518.     
  519. #else     /* C style interface */
  520.  
  521.     typedef struct IMpeg2DataVtbl
  522.     {
  523.         BEGIN_INTERFACE
  524.         
  525.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  526.             IMpeg2Data * This,
  527.             /* [in] */ REFIID riid,
  528.             /* [iid_is][out] */ void **ppvObject);
  529.         
  530.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  531.             IMpeg2Data * This);
  532.         
  533.         ULONG ( STDMETHODCALLTYPE *Release )( 
  534.             IMpeg2Data * This);
  535.         
  536.         HRESULT ( STDMETHODCALLTYPE *GetSection )( 
  537.             IMpeg2Data * This,
  538.             /* [in] */ PID pid,
  539.             /* [in] */ TID tid,
  540.             /* [in] */ PMPEG2_FILTER pFilter,
  541.             /* [in] */ DWORD dwTimeout,
  542.             /* [out] */ ISectionList **ppSectionList);
  543.         
  544.         HRESULT ( STDMETHODCALLTYPE *GetTable )( 
  545.             IMpeg2Data * This,
  546.             /* [in] */ PID pid,
  547.             /* [in] */ TID tid,
  548.             /* [in] */ PMPEG2_FILTER pFilter,
  549.             /* [in] */ DWORD dwTimeout,
  550.             /* [out] */ ISectionList **ppSectionList);
  551.         
  552.         HRESULT ( STDMETHODCALLTYPE *GetStreamOfSections )( 
  553.             IMpeg2Data * This,
  554.             /* [in] */ PID pid,
  555.             /* [in] */ TID tid,
  556.             /* [in] */ PMPEG2_FILTER pFilter,
  557.             /* [in] */ HANDLE hDataReadyEvent,
  558.             /* [out] */ IMpeg2Stream **ppMpegStream);
  559.         
  560.         END_INTERFACE
  561.     } IMpeg2DataVtbl;
  562.  
  563.     interface IMpeg2Data
  564.     {
  565.         CONST_VTBL struct IMpeg2DataVtbl *lpVtbl;
  566.     };
  567.  
  568.     
  569.  
  570. #ifdef COBJMACROS
  571.  
  572.  
  573. #define IMpeg2Data_QueryInterface(This,riid,ppvObject)    \
  574.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  575.  
  576. #define IMpeg2Data_AddRef(This)    \
  577.     (This)->lpVtbl -> AddRef(This)
  578.  
  579. #define IMpeg2Data_Release(This)    \
  580.     (This)->lpVtbl -> Release(This)
  581.  
  582.  
  583. #define IMpeg2Data_GetSection(This,pid,tid,pFilter,dwTimeout,ppSectionList)    \
  584.     (This)->lpVtbl -> GetSection(This,pid,tid,pFilter,dwTimeout,ppSectionList)
  585.  
  586. #define IMpeg2Data_GetTable(This,pid,tid,pFilter,dwTimeout,ppSectionList)    \
  587.     (This)->lpVtbl -> GetTable(This,pid,tid,pFilter,dwTimeout,ppSectionList)
  588.  
  589. #define IMpeg2Data_GetStreamOfSections(This,pid,tid,pFilter,hDataReadyEvent,ppMpegStream)    \
  590.     (This)->lpVtbl -> GetStreamOfSections(This,pid,tid,pFilter,hDataReadyEvent,ppMpegStream)
  591.  
  592. #endif /* COBJMACROS */
  593.  
  594.  
  595. #endif     /* C style interface */
  596.  
  597.  
  598.  
  599. HRESULT STDMETHODCALLTYPE IMpeg2Data_GetSection_Proxy( 
  600.     IMpeg2Data * This,
  601.     /* [in] */ PID pid,
  602.     /* [in] */ TID tid,
  603.     /* [in] */ PMPEG2_FILTER pFilter,
  604.     /* [in] */ DWORD dwTimeout,
  605.     /* [out] */ ISectionList **ppSectionList);
  606.  
  607.  
  608. void __RPC_STUB IMpeg2Data_GetSection_Stub(
  609.     IRpcStubBuffer *This,
  610.     IRpcChannelBuffer *_pRpcChannelBuffer,
  611.     PRPC_MESSAGE _pRpcMessage,
  612.     DWORD *_pdwStubPhase);
  613.  
  614.  
  615. HRESULT STDMETHODCALLTYPE IMpeg2Data_GetTable_Proxy( 
  616.     IMpeg2Data * This,
  617.     /* [in] */ PID pid,
  618.     /* [in] */ TID tid,
  619.     /* [in] */ PMPEG2_FILTER pFilter,
  620.     /* [in] */ DWORD dwTimeout,
  621.     /* [out] */ ISectionList **ppSectionList);
  622.  
  623.  
  624. void __RPC_STUB IMpeg2Data_GetTable_Stub(
  625.     IRpcStubBuffer *This,
  626.     IRpcChannelBuffer *_pRpcChannelBuffer,
  627.     PRPC_MESSAGE _pRpcMessage,
  628.     DWORD *_pdwStubPhase);
  629.  
  630.  
  631. HRESULT STDMETHODCALLTYPE IMpeg2Data_GetStreamOfSections_Proxy( 
  632.     IMpeg2Data * This,
  633.     /* [in] */ PID pid,
  634.     /* [in] */ TID tid,
  635.     /* [in] */ PMPEG2_FILTER pFilter,
  636.     /* [in] */ HANDLE hDataReadyEvent,
  637.     /* [out] */ IMpeg2Stream **ppMpegStream);
  638.  
  639.  
  640. void __RPC_STUB IMpeg2Data_GetStreamOfSections_Stub(
  641.     IRpcStubBuffer *This,
  642.     IRpcChannelBuffer *_pRpcChannelBuffer,
  643.     PRPC_MESSAGE _pRpcMessage,
  644.     DWORD *_pdwStubPhase);
  645.  
  646.  
  647.  
  648. #endif     /* __IMpeg2Data_INTERFACE_DEFINED__ */
  649.  
  650.  
  651. #ifndef __ISectionList_INTERFACE_DEFINED__
  652. #define __ISectionList_INTERFACE_DEFINED__
  653.  
  654. /* interface ISectionList */
  655. /* [unique][uuid][object] */ 
  656.  
  657.  
  658. EXTERN_C const IID IID_ISectionList;
  659.  
  660. #if defined(__cplusplus) && !defined(CINTERFACE)
  661.     
  662.     MIDL_INTERFACE("AFEC1EB5-2A64-46c6-BF4B-AE3CCB6AFDB0")
  663.     ISectionList : public IUnknown
  664.     {
  665.     public:
  666.         virtual HRESULT STDMETHODCALLTYPE Initialize( 
  667.             /* [in] */ MPEG_REQUEST_TYPE requestType,
  668.             /* [in] */ IMpeg2Data *pMpeg2Data,
  669.             /* [in] */ PMPEG_CONTEXT pContext,
  670.             /* [in] */ PID pid,
  671.             /* [in] */ TID tid,
  672.             /* [in] */ PMPEG2_FILTER pFilter,
  673.             /* [in] */ DWORD timeout,
  674.             /* [in] */ HANDLE hDoneEvent) = 0;
  675.         
  676.         virtual HRESULT STDMETHODCALLTYPE InitializeWithRawSections( 
  677.             /* [in] */ PMPEG_PACKET_LIST pmplSections) = 0;
  678.         
  679.         virtual HRESULT STDMETHODCALLTYPE CancelPendingRequest( void) = 0;
  680.         
  681.         virtual HRESULT STDMETHODCALLTYPE GetNumberOfSections( 
  682.             /* [out] */ WORD *pCount) = 0;
  683.         
  684.         virtual HRESULT STDMETHODCALLTYPE GetSectionData( 
  685.             /* [in] */ WORD sectionNumber,
  686.             /* [out] */ DWORD *pdwRawPacketLength,
  687.             /* [out] */ PSECTION *ppSection) = 0;
  688.         
  689.         virtual HRESULT STDMETHODCALLTYPE GetProgramIdentifier( 
  690.             PID *pPid) = 0;
  691.         
  692.         virtual HRESULT STDMETHODCALLTYPE GetTableIdentifier( 
  693.             TID *pTableId) = 0;
  694.         
  695.     };
  696.     
  697. #else     /* C style interface */
  698.  
  699.     typedef struct ISectionListVtbl
  700.     {
  701.         BEGIN_INTERFACE
  702.         
  703.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  704.             ISectionList * This,
  705.             /* [in] */ REFIID riid,
  706.             /* [iid_is][out] */ void **ppvObject);
  707.         
  708.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  709.             ISectionList * This);
  710.         
  711.         ULONG ( STDMETHODCALLTYPE *Release )( 
  712.             ISectionList * This);
  713.         
  714.         HRESULT ( STDMETHODCALLTYPE *Initialize )( 
  715.             ISectionList * This,
  716.             /* [in] */ MPEG_REQUEST_TYPE requestType,
  717.             /* [in] */ IMpeg2Data *pMpeg2Data,
  718.             /* [in] */ PMPEG_CONTEXT pContext,
  719.             /* [in] */ PID pid,
  720.             /* [in] */ TID tid,
  721.             /* [in] */ PMPEG2_FILTER pFilter,
  722.             /* [in] */ DWORD timeout,
  723.             /* [in] */ HANDLE hDoneEvent);
  724.         
  725.         HRESULT ( STDMETHODCALLTYPE *InitializeWithRawSections )( 
  726.             ISectionList * This,
  727.             /* [in] */ PMPEG_PACKET_LIST pmplSections);
  728.         
  729.         HRESULT ( STDMETHODCALLTYPE *CancelPendingRequest )( 
  730.             ISectionList * This);
  731.         
  732.         HRESULT ( STDMETHODCALLTYPE *GetNumberOfSections )( 
  733.             ISectionList * This,
  734.             /* [out] */ WORD *pCount);
  735.         
  736.         HRESULT ( STDMETHODCALLTYPE *GetSectionData )( 
  737.             ISectionList * This,
  738.             /* [in] */ WORD sectionNumber,
  739.             /* [out] */ DWORD *pdwRawPacketLength,
  740.             /* [out] */ PSECTION *ppSection);
  741.         
  742.         HRESULT ( STDMETHODCALLTYPE *GetProgramIdentifier )( 
  743.             ISectionList * This,
  744.             PID *pPid);
  745.         
  746.         HRESULT ( STDMETHODCALLTYPE *GetTableIdentifier )( 
  747.             ISectionList * This,
  748.             TID *pTableId);
  749.         
  750.         END_INTERFACE
  751.     } ISectionListVtbl;
  752.  
  753.     interface ISectionList
  754.     {
  755.         CONST_VTBL struct ISectionListVtbl *lpVtbl;
  756.     };
  757.  
  758.     
  759.  
  760. #ifdef COBJMACROS
  761.  
  762.  
  763. #define ISectionList_QueryInterface(This,riid,ppvObject)    \
  764.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  765.  
  766. #define ISectionList_AddRef(This)    \
  767.     (This)->lpVtbl -> AddRef(This)
  768.  
  769. #define ISectionList_Release(This)    \
  770.     (This)->lpVtbl -> Release(This)
  771.  
  772.  
  773. #define ISectionList_Initialize(This,requestType,pMpeg2Data,pContext,pid,tid,pFilter,timeout,hDoneEvent)    \
  774.     (This)->lpVtbl -> Initialize(This,requestType,pMpeg2Data,pContext,pid,tid,pFilter,timeout,hDoneEvent)
  775.  
  776. #define ISectionList_InitializeWithRawSections(This,pmplSections)    \
  777.     (This)->lpVtbl -> InitializeWithRawSections(This,pmplSections)
  778.  
  779. #define ISectionList_CancelPendingRequest(This)    \
  780.     (This)->lpVtbl -> CancelPendingRequest(This)
  781.  
  782. #define ISectionList_GetNumberOfSections(This,pCount)    \
  783.     (This)->lpVtbl -> GetNumberOfSections(This,pCount)
  784.  
  785. #define ISectionList_GetSectionData(This,sectionNumber,pdwRawPacketLength,ppSection)    \
  786.     (This)->lpVtbl -> GetSectionData(This,sectionNumber,pdwRawPacketLength,ppSection)
  787.  
  788. #define ISectionList_GetProgramIdentifier(This,pPid)    \
  789.     (This)->lpVtbl -> GetProgramIdentifier(This,pPid)
  790.  
  791. #define ISectionList_GetTableIdentifier(This,pTableId)    \
  792.     (This)->lpVtbl -> GetTableIdentifier(This,pTableId)
  793.  
  794. #endif /* COBJMACROS */
  795.  
  796.  
  797. #endif     /* C style interface */
  798.  
  799.  
  800.  
  801. HRESULT STDMETHODCALLTYPE ISectionList_Initialize_Proxy( 
  802.     ISectionList * This,
  803.     /* [in] */ MPEG_REQUEST_TYPE requestType,
  804.     /* [in] */ IMpeg2Data *pMpeg2Data,
  805.     /* [in] */ PMPEG_CONTEXT pContext,
  806.     /* [in] */ PID pid,
  807.     /* [in] */ TID tid,
  808.     /* [in] */ PMPEG2_FILTER pFilter,
  809.     /* [in] */ DWORD timeout,
  810.     /* [in] */ HANDLE hDoneEvent);
  811.  
  812.  
  813. void __RPC_STUB ISectionList_Initialize_Stub(
  814.     IRpcStubBuffer *This,
  815.     IRpcChannelBuffer *_pRpcChannelBuffer,
  816.     PRPC_MESSAGE _pRpcMessage,
  817.     DWORD *_pdwStubPhase);
  818.  
  819.  
  820. HRESULT STDMETHODCALLTYPE ISectionList_InitializeWithRawSections_Proxy( 
  821.     ISectionList * This,
  822.     /* [in] */ PMPEG_PACKET_LIST pmplSections);
  823.  
  824.  
  825. void __RPC_STUB ISectionList_InitializeWithRawSections_Stub(
  826.     IRpcStubBuffer *This,
  827.     IRpcChannelBuffer *_pRpcChannelBuffer,
  828.     PRPC_MESSAGE _pRpcMessage,
  829.     DWORD *_pdwStubPhase);
  830.  
  831.  
  832. HRESULT STDMETHODCALLTYPE ISectionList_CancelPendingRequest_Proxy( 
  833.     ISectionList * This);
  834.  
  835.  
  836. void __RPC_STUB ISectionList_CancelPendingRequest_Stub(
  837.     IRpcStubBuffer *This,
  838.     IRpcChannelBuffer *_pRpcChannelBuffer,
  839.     PRPC_MESSAGE _pRpcMessage,
  840.     DWORD *_pdwStubPhase);
  841.  
  842.  
  843. HRESULT STDMETHODCALLTYPE ISectionList_GetNumberOfSections_Proxy( 
  844.     ISectionList * This,
  845.     /* [out] */ WORD *pCount);
  846.  
  847.  
  848. void __RPC_STUB ISectionList_GetNumberOfSections_Stub(
  849.     IRpcStubBuffer *This,
  850.     IRpcChannelBuffer *_pRpcChannelBuffer,
  851.     PRPC_MESSAGE _pRpcMessage,
  852.     DWORD *_pdwStubPhase);
  853.  
  854.  
  855. HRESULT STDMETHODCALLTYPE ISectionList_GetSectionData_Proxy( 
  856.     ISectionList * This,
  857.     /* [in] */ WORD sectionNumber,
  858.     /* [out] */ DWORD *pdwRawPacketLength,
  859.     /* [out] */ PSECTION *ppSection);
  860.  
  861.  
  862. void __RPC_STUB ISectionList_GetSectionData_Stub(
  863.     IRpcStubBuffer *This,
  864.     IRpcChannelBuffer *_pRpcChannelBuffer,
  865.     PRPC_MESSAGE _pRpcMessage,
  866.     DWORD *_pdwStubPhase);
  867.  
  868.  
  869. HRESULT STDMETHODCALLTYPE ISectionList_GetProgramIdentifier_Proxy( 
  870.     ISectionList * This,
  871.     PID *pPid);
  872.  
  873.  
  874. void __RPC_STUB ISectionList_GetProgramIdentifier_Stub(
  875.     IRpcStubBuffer *This,
  876.     IRpcChannelBuffer *_pRpcChannelBuffer,
  877.     PRPC_MESSAGE _pRpcMessage,
  878.     DWORD *_pdwStubPhase);
  879.  
  880.  
  881. HRESULT STDMETHODCALLTYPE ISectionList_GetTableIdentifier_Proxy( 
  882.     ISectionList * This,
  883.     TID *pTableId);
  884.  
  885.  
  886. void __RPC_STUB ISectionList_GetTableIdentifier_Stub(
  887.     IRpcStubBuffer *This,
  888.     IRpcChannelBuffer *_pRpcChannelBuffer,
  889.     PRPC_MESSAGE _pRpcMessage,
  890.     DWORD *_pdwStubPhase);
  891.  
  892.  
  893.  
  894. #endif     /* __ISectionList_INTERFACE_DEFINED__ */
  895.  
  896.  
  897. #ifndef __IMpeg2Stream_INTERFACE_DEFINED__
  898. #define __IMpeg2Stream_INTERFACE_DEFINED__
  899.  
  900. /* interface IMpeg2Stream */
  901. /* [unique][uuid][object] */ 
  902.  
  903.  
  904. EXTERN_C const IID IID_IMpeg2Stream;
  905.  
  906. #if defined(__cplusplus) && !defined(CINTERFACE)
  907.     
  908.     MIDL_INTERFACE("400CC286-32A0-4ce4-9041-39571125A635")
  909.     IMpeg2Stream : public IUnknown
  910.     {
  911.     public:
  912.         virtual HRESULT STDMETHODCALLTYPE Initialize( 
  913.             /* [in] */ MPEG_REQUEST_TYPE requestType,
  914.             /* [in] */ IMpeg2Data *pMpeg2Data,
  915.             /* [in] */ PMPEG_CONTEXT pContext,
  916.             /* [in] */ PID pid,
  917.             /* [in] */ TID tid,
  918.             /* [in] */ PMPEG2_FILTER pFilter,
  919.             /* [in] */ HANDLE hDataReadyEvent) = 0;
  920.         
  921.         virtual HRESULT STDMETHODCALLTYPE SupplyDataBuffer( 
  922.             /* [in] */ PMPEG_STREAM_BUFFER pStreamBuffer) = 0;
  923.         
  924.     };
  925.     
  926. #else     /* C style interface */
  927.  
  928.     typedef struct IMpeg2StreamVtbl
  929.     {
  930.         BEGIN_INTERFACE
  931.         
  932.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  933.             IMpeg2Stream * This,
  934.             /* [in] */ REFIID riid,
  935.             /* [iid_is][out] */ void **ppvObject);
  936.         
  937.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  938.             IMpeg2Stream * This);
  939.         
  940.         ULONG ( STDMETHODCALLTYPE *Release )( 
  941.             IMpeg2Stream * This);
  942.         
  943.         HRESULT ( STDMETHODCALLTYPE *Initialize )( 
  944.             IMpeg2Stream * This,
  945.             /* [in] */ MPEG_REQUEST_TYPE requestType,
  946.             /* [in] */ IMpeg2Data *pMpeg2Data,
  947.             /* [in] */ PMPEG_CONTEXT pContext,
  948.             /* [in] */ PID pid,
  949.             /* [in] */ TID tid,
  950.             /* [in] */ PMPEG2_FILTER pFilter,
  951.             /* [in] */ HANDLE hDataReadyEvent);
  952.         
  953.         HRESULT ( STDMETHODCALLTYPE *SupplyDataBuffer )( 
  954.             IMpeg2Stream * This,
  955.             /* [in] */ PMPEG_STREAM_BUFFER pStreamBuffer);
  956.         
  957.         END_INTERFACE
  958.     } IMpeg2StreamVtbl;
  959.  
  960.     interface IMpeg2Stream
  961.     {
  962.         CONST_VTBL struct IMpeg2StreamVtbl *lpVtbl;
  963.     };
  964.  
  965.     
  966.  
  967. #ifdef COBJMACROS
  968.  
  969.  
  970. #define IMpeg2Stream_QueryInterface(This,riid,ppvObject)    \
  971.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  972.  
  973. #define IMpeg2Stream_AddRef(This)    \
  974.     (This)->lpVtbl -> AddRef(This)
  975.  
  976. #define IMpeg2Stream_Release(This)    \
  977.     (This)->lpVtbl -> Release(This)
  978.  
  979.  
  980. #define IMpeg2Stream_Initialize(This,requestType,pMpeg2Data,pContext,pid,tid,pFilter,hDataReadyEvent)    \
  981.     (This)->lpVtbl -> Initialize(This,requestType,pMpeg2Data,pContext,pid,tid,pFilter,hDataReadyEvent)
  982.  
  983. #define IMpeg2Stream_SupplyDataBuffer(This,pStreamBuffer)    \
  984.     (This)->lpVtbl -> SupplyDataBuffer(This,pStreamBuffer)
  985.  
  986. #endif /* COBJMACROS */
  987.  
  988.  
  989. #endif     /* C style interface */
  990.  
  991.  
  992.  
  993. HRESULT STDMETHODCALLTYPE IMpeg2Stream_Initialize_Proxy( 
  994.     IMpeg2Stream * This,
  995.     /* [in] */ MPEG_REQUEST_TYPE requestType,
  996.     /* [in] */ IMpeg2Data *pMpeg2Data,
  997.     /* [in] */ PMPEG_CONTEXT pContext,
  998.     /* [in] */ PID pid,
  999.     /* [in] */ TID tid,
  1000.     /* [in] */ PMPEG2_FILTER pFilter,
  1001.     /* [in] */ HANDLE hDataReadyEvent);
  1002.  
  1003.  
  1004. void __RPC_STUB IMpeg2Stream_Initialize_Stub(
  1005.     IRpcStubBuffer *This,
  1006.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1007.     PRPC_MESSAGE _pRpcMessage,
  1008.     DWORD *_pdwStubPhase);
  1009.  
  1010.  
  1011. HRESULT STDMETHODCALLTYPE IMpeg2Stream_SupplyDataBuffer_Proxy( 
  1012.     IMpeg2Stream * This,
  1013.     /* [in] */ PMPEG_STREAM_BUFFER pStreamBuffer);
  1014.  
  1015.  
  1016. void __RPC_STUB IMpeg2Stream_SupplyDataBuffer_Stub(
  1017.     IRpcStubBuffer *This,
  1018.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1019.     PRPC_MESSAGE _pRpcMessage,
  1020.     DWORD *_pdwStubPhase);
  1021.  
  1022.  
  1023.  
  1024. #endif     /* __IMpeg2Stream_INTERFACE_DEFINED__ */
  1025.  
  1026.  
  1027. EXTERN_C const CLSID CLSID_SectionList;
  1028.  
  1029. #ifdef __cplusplus
  1030.  
  1031. class DECLSPEC_UUID("73DA5D04-4347-45d3-A9DC-FAE9DDBE558D")
  1032. SectionList;
  1033. #endif
  1034.  
  1035. EXTERN_C const CLSID CLSID_Mpeg2Stream;
  1036.  
  1037. #ifdef __cplusplus
  1038.  
  1039. class DECLSPEC_UUID("F91D96C7-8509-4d0b-AB26-A0DD10904BB7")
  1040. Mpeg2Stream;
  1041. #endif
  1042.  
  1043. EXTERN_C const CLSID CLSID_Mpeg2Data;
  1044.  
  1045. #ifdef __cplusplus
  1046.  
  1047. class DECLSPEC_UUID("C666E115-BB62-4027-A113-82D643FE2D99")
  1048. Mpeg2Data;
  1049. #endif
  1050. #endif /* __Mpeg2DataLib_LIBRARY_DEFINED__ */
  1051.  
  1052. /* interface __MIDL_itf_mpeg2data_0432 */
  1053. /* [local] */ 
  1054.  
  1055.  
  1056. #pragma pack(pop)
  1057.  
  1058.  
  1059. extern RPC_IF_HANDLE __MIDL_itf_mpeg2data_0432_v0_0_c_ifspec;
  1060. extern RPC_IF_HANDLE __MIDL_itf_mpeg2data_0432_v0_0_s_ifspec;
  1061.  
  1062. /* Additional Prototypes for ALL interfaces */
  1063.  
  1064. /* end of Additional Prototypes */
  1065.  
  1066. #ifdef __cplusplus
  1067. }
  1068. #endif
  1069.  
  1070. #endif
  1071.  
  1072.  
  1073.